#include "app_memory.h"

/*

unsigned char push_time[50];	  // 系统存储 上报时间 字符串
unsigned char device_id[50];	 // 系统存储 设备名称
unsigned char server_1_addr[50];  //
unsigned char server_2_addr[50];  //
unsigned char wifi_ssid_addr[50]; //
unsigned char server_1_plam[50];  //
unsigned char server_2_plam[50];  //
unsigned char lora_1_addr[50];
unsigned char lora_2_addr[50];	  //
unsigned char lora_3_addr[50];	  //
unsigned char lora_4_addr[50];	  //
unsigned char lora_5_addr[50];
unsigned char lora_6_addr[50];
unsigned char lora_7_addr[50];
unsigned char lora_8_addr[50];
unsigned char lora_9_addr[50];
unsigned char lora_10_addr[50];
unsigned char lora_11_addr[50];
unsigned char lora_12_addr[50];    //
unsigned char lora_13_addr[50];    //
unsigned char lora_14_addr[50];    //
unsigned char lora_15_addr[50];
unsigned char lora_16_addr[50];
unsigned char lora_17_addr[50];
unsigned char lora_18_addr[50];
unsigned char lora_19_addr[50];
unsigned char lora_20_addr[50];
unsigned char lora_21_addr[50];
unsigned char lora_22_addr[50];    //
unsigned char lora_23_addr[50];    //
unsigned char lora_24_addr[50];


*/

unsigned char Get_NUM_true(unsigned char shuzi)
{
    if((shuzi>='0')&&(shuzi<='9')) return 1;
	  else return 0;

}


void Get_num_char(unsigned short num,unsigned char channle)
{
	 unsigned char a,b,c,d;
   if(channle==0)
	 {

				 a='0'+ (num/1000);     //千位
				 b='0'+ (num%1000)/100; //百位
				 c='0'+ (num%100)/10;   //十位
				 d='0'+ (num%10);   //个位
		     SYSTEM_INFO_str.lora_1_addr[0]=4;
				 SYSTEM_INFO_str.lora_1_addr[1]=a;
				 SYSTEM_INFO_str.lora_1_addr[2]=b;
				 SYSTEM_INFO_str.lora_1_addr[3]=c;
				 SYSTEM_INFO_str.lora_1_addr[4]=d;

	 
	 }
	 else if(channle==1)
	 {
	       a='0'+ (num/1000);     //千位
				 b='0'+ (num%1000)/100; //百位
				 c='0'+ (num%100)/10;   //十位
				d='0'+ (num%10);   //个位
		     SYSTEM_INFO_str.lora_2_addr[0]=4;
				SYSTEM_INFO_str.lora_2_addr[1]=a;
				SYSTEM_INFO_str.lora_2_addr[2]=b;
				SYSTEM_INFO_str.lora_2_addr[3]=c;
				SYSTEM_INFO_str.lora_2_addr[4]=d;
	 
	 }
	 else if(channle==2)
	 {
	    a='0'+ (num/1000);     //千位
			b='0'+ (num%1000)/100; //百位
			c='0'+ (num%100)/10;   //十位
			d='0'+ (num%10);   //个位
		   SYSTEM_INFO_str.lora_3_addr[0]=4;
			SYSTEM_INFO_str.lora_3_addr[1]=a;
			SYSTEM_INFO_str.lora_3_addr[2]=b;
			SYSTEM_INFO_str.lora_3_addr[3]=c;
			SYSTEM_INFO_str.lora_3_addr[4]=d;
	 
	 }
	 else if(channle==3)
	 {
	    a='0'+ (num/1000);     //千位
			b='0'+ (num%1000)/100; //百位
			c='0'+ (num%100)/10;   //十位
			d='0'+ (num%10);   //个位
		   SYSTEM_INFO_str.lora_4_addr[0]=4;
			SYSTEM_INFO_str.lora_4_addr[1]=a;
			SYSTEM_INFO_str.lora_4_addr[2]=b;
			SYSTEM_INFO_str.lora_4_addr[3]=c;
			SYSTEM_INFO_str.lora_4_addr[4]=d;
	 
	 }
	 else if(channle==4)
	 {
	   a='0'+ (num/1000);     //千位
		b='0'+ (num%1000)/100; //百位
		c='0'+ (num%100)/10;   //十位
		d='0'+ (num%10);   //个位
		  SYSTEM_INFO_str.lora_5_addr[0]=4;
		SYSTEM_INFO_str.lora_5_addr[1]=a;
		SYSTEM_INFO_str.lora_5_addr[2]=b;
		SYSTEM_INFO_str.lora_5_addr[3]=c;
		SYSTEM_INFO_str.lora_5_addr[4]=d;
	 
	 }
	 else if(channle==5)
	 {
	   a='0'+ (num/1000);     //千位
		b='0'+ (num%1000)/100; //百位
		c='0'+ (num%100)/10;   //十位
		d='0'+ (num%10);   //个位
		  SYSTEM_INFO_str.lora_6_addr[0]=4;
		SYSTEM_INFO_str.lora_6_addr[1]=a;
		SYSTEM_INFO_str.lora_6_addr[2]=b;
		SYSTEM_INFO_str.lora_6_addr[3]=c;
		SYSTEM_INFO_str.lora_6_addr[4]=d;
	 }
	 else if(channle==6)
	 {
	    a='0'+ (num/1000);     //千位
			b='0'+ (num%1000)/100; //百位
			c='0'+ (num%100)/10;   //十位
			d='0'+ (num%10);   //个位
		   SYSTEM_INFO_str.lora_7_addr[0]=4;
			SYSTEM_INFO_str.lora_7_addr[1]=a;
			SYSTEM_INFO_str.lora_7_addr[2]=b;
			SYSTEM_INFO_str.lora_7_addr[3]=c;
			SYSTEM_INFO_str.lora_7_addr[4]=d;
				 
	 }
	 else if(channle==7)
	 {
			a='0'+ (num/1000);     //千位
			b='0'+ (num%1000)/100; //百位
			c='0'+ (num%100)/10;   //十位
			d='0'+ (num%10);   //个位
		  SYSTEM_INFO_str.lora_8_addr[0]=4;
			SYSTEM_INFO_str.lora_8_addr[1]=a;
			SYSTEM_INFO_str.lora_8_addr[2]=b;
			SYSTEM_INFO_str.lora_8_addr[3]=c;
			SYSTEM_INFO_str.lora_8_addr[4]=d;	   
	 
	 }
	 else if(channle==8)
	 {
			a='0'+ (num/1000);     //千位
			b='0'+ (num%1000)/100; //百位
			c='0'+ (num%100)/10;   //十位
			d='0'+ (num%10);   //个位
		  SYSTEM_INFO_str.lora_9_addr[0]=4;
			SYSTEM_INFO_str.lora_9_addr[1]=a;
			SYSTEM_INFO_str.lora_9_addr[2]=b;
			SYSTEM_INFO_str.lora_9_addr[3]=c;
			SYSTEM_INFO_str.lora_9_addr[4]=d;	   
	 }
	 else if(channle==9)
	 {
			a='0'+ (num/1000);     //千位
			b='0'+ (num%1000)/100; //百位
			c='0'+ (num%100)/10;   //十位
			d='0'+ (num%10);   //个位
		  SYSTEM_INFO_str.lora_10_addr[0]=4;
			SYSTEM_INFO_str.lora_10_addr[1]=a;
			SYSTEM_INFO_str.lora_10_addr[2]=b;
			SYSTEM_INFO_str.lora_10_addr[3]=c;
			SYSTEM_INFO_str.lora_10_addr[4]=d;	 
	 }
	 else if(channle==10)
	 {
			a='0'+ (num/1000);     //千位
			b='0'+ (num%1000)/100; //百位
			c='0'+ (num%100)/10;   //十位
			d='0'+ (num%10);   //个位
		  SYSTEM_INFO_str.lora_11_addr[0]=4;
			SYSTEM_INFO_str.lora_11_addr[1]=a;
			SYSTEM_INFO_str.lora_11_addr[2]=b;
			SYSTEM_INFO_str.lora_11_addr[3]=c;
			SYSTEM_INFO_str.lora_11_addr[4]=d;	   
	 }
	 else if(channle==11)
	 {
			a='0'+ (num/1000);     //千位
			b='0'+ (num%1000)/100; //百位
			c='0'+ (num%100)/10;   //十位
			d='0'+ (num%10);   //个位
		  SYSTEM_INFO_str.lora_12_addr[0]=4;
			SYSTEM_INFO_str.lora_12_addr[1]=a;
			SYSTEM_INFO_str.lora_12_addr[2]=b;
			SYSTEM_INFO_str.lora_12_addr[3]=c;
			SYSTEM_INFO_str.lora_12_addr[4]=d;	 
	 }
	 else if(channle==12)
	 {
			a='0'+ (num/1000);     //千位
			b='0'+ (num%1000)/100; //百位
			c='0'+ (num%100)/10;   //十位
			d='0'+ (num%10);   //个位
		  SYSTEM_INFO_str.lora_13_addr[0]=4;
			SYSTEM_INFO_str.lora_13_addr[1]=a;
			SYSTEM_INFO_str.lora_13_addr[2]=b;
			SYSTEM_INFO_str.lora_13_addr[3]=c;
			SYSTEM_INFO_str.lora_13_addr[4]=d;	 
	 }
	 else if(channle==13)
	 {
			a='0'+ (num/1000);     //千位
			b='0'+ (num%1000)/100; //百位
			c='0'+ (num%100)/10;   //十位
			d='0'+ (num%10);   //个位
		  SYSTEM_INFO_str.lora_14_addr[0]=4;
			SYSTEM_INFO_str.lora_14_addr[1]=a;
			SYSTEM_INFO_str.lora_14_addr[2]=b;
			SYSTEM_INFO_str.lora_14_addr[3]=c;
			SYSTEM_INFO_str.lora_14_addr[4]=d;	 
	 }
	 else if(channle==14)
	 {
			a='0'+ (num/1000);     //千位
			b='0'+ (num%1000)/100; //百位
			c='0'+ (num%100)/10;   //十位
			d='0'+ (num%10);   //个位
		  SYSTEM_INFO_str.lora_15_addr[0]=4;
			SYSTEM_INFO_str.lora_15_addr[1]=a;
			SYSTEM_INFO_str.lora_15_addr[2]=b;
			SYSTEM_INFO_str.lora_15_addr[3]=c;
			SYSTEM_INFO_str.lora_15_addr[4]=d;	 
	 }
	 else if(channle==15)
	 {
			a='0'+ (num/1000);     //千位
			b='0'+ (num%1000)/100; //百位
			c='0'+ (num%100)/10;   //十位
			d='0'+ (num%10);   //个位
		  SYSTEM_INFO_str.lora_16_addr[0]=4;
			SYSTEM_INFO_str.lora_16_addr[1]=a;
			SYSTEM_INFO_str.lora_16_addr[2]=b;
			SYSTEM_INFO_str.lora_16_addr[3]=c;
			SYSTEM_INFO_str.lora_16_addr[4]=d;	 
	 
	 }
	 else if(channle==16)
	 {
			a='0'+ (num/1000);     //千位
			b='0'+ (num%1000)/100; //百位
			c='0'+ (num%100)/10;   //十位
			d='0'+ (num%10);   //个位
		  SYSTEM_INFO_str.lora_17_addr[0]=4;
			SYSTEM_INFO_str.lora_17_addr[1]=a;
			SYSTEM_INFO_str.lora_17_addr[2]=b;
			SYSTEM_INFO_str.lora_17_addr[3]=c;
			SYSTEM_INFO_str.lora_17_addr[4]=d;	 
	 }
	 else if(channle==17)
	 {
			a='0'+ (num/1000);     //千位
			b='0'+ (num%1000)/100; //百位
			c='0'+ (num%100)/10;   //十位
			d='0'+ (num%10);   //个位
		  SYSTEM_INFO_str.lora_18_addr[0]=4;
			SYSTEM_INFO_str.lora_18_addr[1]=a;
			SYSTEM_INFO_str.lora_18_addr[2]=b;
			SYSTEM_INFO_str.lora_18_addr[3]=c;
			SYSTEM_INFO_str.lora_18_addr[4]=d;	 
	 }
	 else if(channle==18)
	 {
			a='0'+ (num/1000);     //千位
			b='0'+ (num%1000)/100; //百位
			c='0'+ (num%100)/10;   //十位
			d='0'+ (num%10);   //个位
		  SYSTEM_INFO_str.lora_19_addr[0]=4;
			SYSTEM_INFO_str.lora_19_addr[1]=a;
			SYSTEM_INFO_str.lora_19_addr[2]=b;
			SYSTEM_INFO_str.lora_19_addr[3]=c;
			SYSTEM_INFO_str.lora_19_addr[4]=d;	 
	 }
	 else if(channle==19)
	 {
			a='0'+ (num/1000);     //千位
			b='0'+ (num%1000)/100; //百位
			c='0'+ (num%100)/10;   //十位
			d='0'+ (num%10);   //个位
		  SYSTEM_INFO_str.lora_20_addr[0]=4;
			SYSTEM_INFO_str.lora_20_addr[1]=a;
			SYSTEM_INFO_str.lora_20_addr[2]=b;
			SYSTEM_INFO_str.lora_20_addr[3]=c;
			SYSTEM_INFO_str.lora_20_addr[4]=d;	 
	 }
	 else if(channle==20)
	 {
			a='0'+ (num/1000);     //千位
			b='0'+ (num%1000)/100; //百位
			c='0'+ (num%100)/10;   //十位
			d='0'+ (num%10);   //个位
		  SYSTEM_INFO_str.lora_21_addr[0]=4;
			SYSTEM_INFO_str.lora_21_addr[1]=a;
			SYSTEM_INFO_str.lora_21_addr[2]=b;
			SYSTEM_INFO_str.lora_21_addr[3]=c;
			SYSTEM_INFO_str.lora_21_addr[4]=d;	 
	 }
	 else if(channle==21)
	 {
			a='0'+ (num/1000);     //千位
			b='0'+ (num%1000)/100; //百位
			c='0'+ (num%100)/10;   //十位
			d='0'+ (num%10);   //个位
		  SYSTEM_INFO_str.lora_22_addr[0]=4;
			SYSTEM_INFO_str.lora_22_addr[1]=a;
			SYSTEM_INFO_str.lora_22_addr[2]=b;
			SYSTEM_INFO_str.lora_22_addr[3]=c;
			SYSTEM_INFO_str.lora_22_addr[4]=d;	 
	 }
	 else if(channle==22)
	 {
			a='0'+ (num/1000);     //千位
			b='0'+ (num%1000)/100; //百位
			c='0'+ (num%100)/10;   //十位
			d='0'+ (num%10);   //个位
		  SYSTEM_INFO_str.lora_23_addr[0]=4;
			SYSTEM_INFO_str.lora_23_addr[1]=a;
			SYSTEM_INFO_str.lora_23_addr[2]=b;
			SYSTEM_INFO_str.lora_23_addr[3]=c;
			SYSTEM_INFO_str.lora_23_addr[4]=d;	 
	 }
	 else if(channle==23)
	 {
			a='0'+ (num/1000);     //千位
			b='0'+ (num%1000)/100; //百位
			c='0'+ (num%100)/10;   //十位
			d='0'+ (num%10);   //个位
		  SYSTEM_INFO_str.lora_24_addr[0]=4;
			SYSTEM_INFO_str.lora_24_addr[1]=a;
			SYSTEM_INFO_str.lora_24_addr[2]=b;
			SYSTEM_INFO_str.lora_24_addr[3]=c;
			SYSTEM_INFO_str.lora_24_addr[4]=d;	    
	 }
	 else
	 {
	    printf("error channle,please check!");
	 }
	
}

//lora  id 字符 转 INT 型数据
void Get_num_lora(unsigned char *buf,unsigned char channle)//buf 是lora的id
{
   unsigned char a,b,c,d;
	 a=buf[1];
	 b=buf[2];
	 c=buf[3];
	 d=buf[4];
	if((Get_NUM_true(a)==1)&&(Get_NUM_true(b)==1)&&(Get_NUM_true(c)==1)&&(Get_NUM_true(d)==1))//都是0-9的数字
	{
	   RingQueue_readbuf[channle].device_id=(a-'0')*1000+(b-'0')*100+(c-'0')*10+(d-'0');
		 printf("lora id true  channle:%d   ",channle+1);
		 printf("id:%d \r\n",RingQueue_readbuf[channle].device_id);
    if( RingQueue_readbuf[channle].device_id!=0)
    {      
     lora_queue++;
     lora_buf[channle]=1;
    }
	}
  else
	{
		printf("lora id channle %d   error !\r\n",channle);
		
	}

}

void Get_num_sys_time(unsigned char *buf)
{
    unsigned char buf_len= buf[0];
    if((buf_len>5)&&(buf_len<2))
		{
		   
			printf("set time error: 120~10000 sec \r\n");
			SYS_TIME_FLAG_str.time_1200sec_set=1200;
		  printf("set time : 1200 sec \r\n");
		}
    else
		{ 
			if(buf_len==2)
			{
			   SYS_TIME_FLAG_str.time_1200sec_set= (buf[1]-'0')*10+(buf[2]-'0');
				 SYS_TIME_FLAG_str.CH2_time_1200sec_set=SYS_TIME_FLAG_str.time_1200sec_set;
				 printf("set time:%d\r\n",SYS_TIME_FLAG_str.time_1200sec_set);
			
			}
			else if(buf_len==3)
			{
			
			   SYS_TIME_FLAG_str.time_1200sec_set=(buf[1]-'0')*100+(buf[2]-'0')*10+(buf[3]-'0');
				 SYS_TIME_FLAG_str.CH2_time_1200sec_set=SYS_TIME_FLAG_str.time_1200sec_set;
				  printf("set time:%d\r\n",SYS_TIME_FLAG_str.time_1200sec_set);
			
			}
			else if(buf_len==4)
			{
			   SYS_TIME_FLAG_str.time_1200sec_set=(buf[1]-'0')*1000+(buf[2]-'0')*100+(buf[3]-'0')*10+(buf[4]-'0');
				SYS_TIME_FLAG_str.CH2_time_1200sec_set=SYS_TIME_FLAG_str.time_1200sec_set;
				 printf("set time:%d\r\n",SYS_TIME_FLAG_str.time_1200sec_set);
			
			}
		  else if(buf_len==5)
			{
			   SYS_TIME_FLAG_str.time_1200sec_set=(buf[1]-'0')*10000+(buf[2]-'0')*1000+(buf[3]-'0')*100+(buf[4]-'0')*10+(buf[5]-'0');
				 SYS_TIME_FLAG_str.CH2_time_1200sec_set=SYS_TIME_FLAG_str.time_1200sec_set;
				 printf("set time:%d\r\n",SYS_TIME_FLAG_str.time_1200sec_set);
			
			}
		
		
		}

}

unsigned char buf[2000]={0}; //

// 读取 系统信息
void Read_system_info(void)
{
  
   unsigned short j=0;
   W25QXX_Read(buf,system_info_addr,2000);  //从flash读2000字节到buf,并存到下面结构体
   for(j=0;j<50;j++)
   {
	 SYSTEM_INFO_str.push_time[j]=buf[j];
   }

   for(j=0;j<50;j++)
   {
	 SYSTEM_INFO_str.device_id[j]=buf[j+50];
   }

   for(j=0;j<50;j++)
   {
	 SYSTEM_INFO_str.server_1_addr[j]=buf[j+100];
   }

   for(j=0;j<50;j++)
   {
	 SYSTEM_INFO_str.server_2_addr[j]=buf[j+150];
   }

   for(j=0;j<50;j++)
   {
	 SYSTEM_INFO_str.wifi_ssid_addr[j]=buf[j+200];
   }

   for(j=0;j<50;j++)
   {
	 SYSTEM_INFO_str.server_1_plam[j]=buf[j+250];
   }

   for(j=0;j<50;j++)
   {
	 SYSTEM_INFO_str.server_2_plam[j]=buf[j+300];
   }

   for(j=0;j<50;j++)
   {
	 SYSTEM_INFO_str.lora_1_addr[j]=buf[j+350];
   }

   for(j=0;j<50;j++)
   {
	 SYSTEM_INFO_str.lora_2_addr[j]=buf[j+400];
   }

   for(j=0;j<50;j++)
   {
	 SYSTEM_INFO_str.lora_3_addr[j]=buf[j+450];
   }

   for(j=0;j<50;j++)
   {
	 SYSTEM_INFO_str.lora_4_addr[j]=buf[j+500];
   }
   for(j=0;j<50;j++)
   {
	 SYSTEM_INFO_str.lora_5_addr[j]=buf[j+550];
   }

   for(j=0;j<50;j++)
   {
	 SYSTEM_INFO_str.lora_6_addr[j]=buf[j+600];
   }

   for(j=0;j<50;j++)
   {
	 SYSTEM_INFO_str.lora_7_addr[j]=buf[j+650];
   }

   for(j=0;j<50;j++)
   {
	 SYSTEM_INFO_str.lora_8_addr[j]=buf[j+700];
   }

   for(j=0;j<50;j++)
   {
	 SYSTEM_INFO_str.lora_9_addr[j]=buf[j+750];
   }

   for(j=0;j<50;j++)
   {
	 SYSTEM_INFO_str.lora_10_addr[j]=buf[j+800];
   }

   for(j=0;j<50;j++)
   {
	 SYSTEM_INFO_str.lora_11_addr[j]=buf[j+850];
   }

   for(j=0;j<50;j++)
   {
	 SYSTEM_INFO_str.lora_11_addr[j]=buf[j+850];
   }

    for(j=0;j<50;j++)
   {
	 SYSTEM_INFO_str.lora_12_addr[j]=buf[j+900];
   }

   for(j=0;j<50;j++)
   {
	 SYSTEM_INFO_str.lora_13_addr[j]=buf[j+950];
   }

   for(j=0;j<50;j++)
   {
	 SYSTEM_INFO_str.lora_14_addr[j]=buf[j+1000];
   }

   for(j=0;j<50;j++)
   {
	 SYSTEM_INFO_str.lora_15_addr[j]=buf[j+1050];
   }
   for(j=0;j<50;j++)
   {
	 SYSTEM_INFO_str.lora_16_addr[j]=buf[j+1100];
   }
   for(j=0;j<50;j++)
   {
	 SYSTEM_INFO_str.lora_17_addr[j]=buf[j+1150];
   }
   for(j=0;j<50;j++)
   {
	 SYSTEM_INFO_str.lora_18_addr[j]=buf[j+1200];
   }
   for(j=0;j<50;j++)
   {
	 SYSTEM_INFO_str.lora_19_addr[j]=buf[j+1250];
   }
   for(j=0;j<50;j++)
   {
	 SYSTEM_INFO_str.lora_20_addr[j]=buf[j+1300];
   }
   for(j=0;j<50;j++)
   {
	 SYSTEM_INFO_str.lora_21_addr[j]=buf[j+1350];
   }
   for(j=0;j<50;j++)
   {
	 SYSTEM_INFO_str.lora_22_addr[j]=buf[j+1400];
   }
   for(j=0;j<50;j++)
   {
	 SYSTEM_INFO_str.lora_23_addr[j]=buf[j+1450];
   }
   for(j=0;j<50;j++)
   {
	 SYSTEM_INFO_str.lora_24_addr[j]=buf[j+1500];
   }
   printf("read  system info Ok 0- 2000\r\n");
}


// 写入 系统信息
void Write_system_info(void)//先把结构体内容存的buf,再写入flash
{
  
   unsigned short j=0;
 
   for(j=0;j<50;j++)
   {
	 buf[j]=SYSTEM_INFO_str.push_time[j];
   }

   for(j=0;j<50;j++)
   {
	 buf[j+50]=SYSTEM_INFO_str.device_id[j];
   }

   for(j=0;j<50;j++)
   {
	 buf[j+100]=SYSTEM_INFO_str.server_1_addr[j];
   }

   for(j=0;j<50;j++)
   {
	 buf[j+150]=SYSTEM_INFO_str.server_2_addr[j];
   }

   for(j=0;j<50;j++)
   {
	 buf[j+200]=SYSTEM_INFO_str.wifi_ssid_addr[j];
   }

   for(j=0;j<50;j++)
   {
	 buf[j+250]=SYSTEM_INFO_str.server_1_plam[j];
   }

   for(j=0;j<50;j++)
   {
	 buf[j+300]=SYSTEM_INFO_str.server_2_plam[j];
   }

   for(j=0;j<50;j++)
   {
	 buf[j+350]=SYSTEM_INFO_str.lora_1_addr[j];
   }

   for(j=0;j<50;j++)
   {
	 buf[j+400]=SYSTEM_INFO_str.lora_2_addr[j];
   }

   for(j=0;j<50;j++)
   {
	 buf[j+450]=SYSTEM_INFO_str.lora_3_addr[j];
   }

   for(j=0;j<50;j++)
   {
	 buf[j+500]=SYSTEM_INFO_str.lora_4_addr[j];
   }
   for(j=0;j<50;j++)
   {
	 buf[j+550]=SYSTEM_INFO_str.lora_5_addr[j];
   }

   for(j=0;j<50;j++)
   {
	 buf[j+600]=SYSTEM_INFO_str.lora_6_addr[j];
   }

   for(j=0;j<50;j++)
   {
	 buf[j+650]=SYSTEM_INFO_str.lora_7_addr[j];
   }

   for(j=0;j<50;j++)
   {
	 buf[j+700]=SYSTEM_INFO_str.lora_8_addr[j];
   }

   for(j=0;j<50;j++)
   {
	 buf[j+750]=SYSTEM_INFO_str.lora_9_addr[j];
   }

   for(j=0;j<50;j++)
   {
	 buf[j+800]=SYSTEM_INFO_str.lora_10_addr[j];
   }

   for(j=0;j<50;j++)
   {
	 buf[j+850]=SYSTEM_INFO_str.lora_11_addr[j];
   }

   for(j=0;j<50;j++)
   {
	 buf[j+850]=SYSTEM_INFO_str.lora_11_addr[j];
   }

    for(j=0;j<50;j++)
   {
	 buf[j+900]=SYSTEM_INFO_str.lora_12_addr[j];
   }

   for(j=0;j<50;j++)
   {
	 buf[j+950]=SYSTEM_INFO_str.lora_13_addr[j];
   }

   for(j=0;j<50;j++)
   {
	 buf[j+1000]=SYSTEM_INFO_str.lora_14_addr[j];
   }

   for(j=0;j<50;j++)
   {
	 buf[j+1050]=SYSTEM_INFO_str.lora_15_addr[j];
   }
   for(j=0;j<50;j++)
   {
	 buf[j+1100]=SYSTEM_INFO_str.lora_16_addr[j];
   }
   for(j=0;j<50;j++)
   {
	 buf[j+1150]=SYSTEM_INFO_str.lora_17_addr[j];
   }
   for(j=0;j<50;j++)
   {
	 buf[j+1200]=SYSTEM_INFO_str.lora_18_addr[j];
   }
   for(j=0;j<50;j++)
   {
	 buf[j+1250]=SYSTEM_INFO_str.lora_19_addr[j];
   }
   for(j=0;j<50;j++)
   {
	 buf[j+1300]=SYSTEM_INFO_str.lora_20_addr[j];
   }
   for(j=0;j<50;j++)
   {
	 buf[j+1350]=SYSTEM_INFO_str.lora_21_addr[j];
   }
   for(j=0;j<50;j++)
   {
	 buf[j+1400]=SYSTEM_INFO_str.lora_22_addr[j];
   }
   for(j=0;j<50;j++)
   {
	 buf[j+1450]=SYSTEM_INFO_str.lora_23_addr[j];
   }
   for(j=0;j<50;j++)
   {
	 buf[j+1500]=SYSTEM_INFO_str.lora_24_addr[j];
   }
   
   W25QXX_Write(buf,system_info_addr,2000);
   printf("write  system info Ok\r\n");

}



//   unsigned int ALL_WORK_TIME;     //小时
//	 unsigned int CONTINUE_WORK_TIME; //小时
//	 unsigned int Month_Send_Flow;    // byte
//	 unsigned int Month_Rev_Flow;	    // byte
//	 unsigned int Current_Mouth;
//读取 记录的运行时间和 流量
void Read_Record_time_flow(void)
{
    unsigned char read_buf[50]={0};
		int rec_value=0;
		W25QXX_Read(buf,system_info_addr1,10);  
		
    if((read_buf[0]!=0x5a)&&(read_buf[1]!=0x5a))//初始化为0，并写入read buf
		{
		
		   printf("system  have no record time & flow \r\n");
			 SYS_EXT_FLAG_str.ALL_WORK_TIME=0;
			 SYS_EXT_FLAG_str.CONTINUE_WORK_TIME=0;
			 SYS_EXT_FLAG_str.Month_Rev_Flow=0;
			 SYS_EXT_FLAG_str.Month_Send_Flow=0;
			 SYS_EXT_FLAG_str.Current_Mouth=RTC_DateStruct.RTC_Month; //获取 当前月
			
			 SYS_EXT_FLAG_str1.ALL_WORK_TIME=0;
			 SYS_EXT_FLAG_str1.CONTINUE_WORK_TIME=0;
			 SYS_EXT_FLAG_str1.Month_Rev_Flow=0;
			 SYS_EXT_FLAG_str1.Month_Send_Flow=0;
			 SYS_EXT_FLAG_str1.Current_Mouth=RTC_DateStruct.RTC_Month; //获取 当前月
		   printf(" system default value :\r\n");
			 printf("SIM1 ---ALL_WORK_TIME;%d\r\n",SYS_EXT_FLAG_str.ALL_WORK_TIME);
			 printf("SIM1 ---CONTINUE_WORK_TIME:%d\r\n",SYS_EXT_FLAG_str.CONTINUE_WORK_TIME);
			 printf("SIM1 ---Month_Send_Flow:%d\r\n",SYS_EXT_FLAG_str.Month_Send_Flow);
			 printf("SIM1 ---Month_Rev_Flow:%d\r\n",SYS_EXT_FLAG_str.Month_Rev_Flow);		   
			 printf("SIM1 ---Current_Mouth;%d\r\n",SYS_EXT_FLAG_str.Current_Mouth);
			 
			 printf("SIM2 ---ALL_WORK_TIME;%d\r\n",SYS_EXT_FLAG_str1.ALL_WORK_TIME);
			 printf("SIM2 ---CONTINUE_WORK_TIME:%d\r\n",SYS_EXT_FLAG_str1.CONTINUE_WORK_TIME);
			 printf("SIM2 ---Month_Send_Flow:%d\r\n",SYS_EXT_FLAG_str1.Month_Send_Flow);
			 printf("SIM2 ---Month_Rev_Flow:%d\r\n",SYS_EXT_FLAG_str1.Month_Rev_Flow);		   
			 printf("SIM2 ---Current_Mouth;%d\r\n",SYS_EXT_FLAG_str1.Current_Mouth);
			 read_buf[0]=0x5a;
			 read_buf[1]=0x5a;
			 rec_value=SYS_EXT_FLAG_str.ALL_WORK_TIME;
			 read_buf[2]=(rec_value>>24)&0x00ff;
			 read_buf[3]=(rec_value>>16)&0x00ff;
			 read_buf[4]=(rec_value>>8)&0x00ff;
			 read_buf[5]=rec_value&0x00ff;
			 
			 rec_value=SYS_EXT_FLAG_str.CONTINUE_WORK_TIME;
			 read_buf[6]=(rec_value>>24)&0x00ff;
			 read_buf[7]=(rec_value>>16)&0x00ff;
			 read_buf[8]=(rec_value>>8)&0x00ff;
			 read_buf[9]=rec_value&0x00ff;
			
       rec_value=SYS_EXT_FLAG_str.Month_Send_Flow;			
			 read_buf[10]=(rec_value>>24)&0x00ff;
			 read_buf[11]=(rec_value>>16)&0x00ff;
			 read_buf[12]=(rec_value>>8)&0x00ff;
			 read_buf[13]=rec_value&0x00ff;
			 
			 rec_value=SYS_EXT_FLAG_str.Month_Rev_Flow;			
			 read_buf[14]=(rec_value>>24)&0x00ff;
			 read_buf[15]=(rec_value>>16)&0x00ff;
			 read_buf[16]=(rec_value>>8)&0x00ff;
			 read_buf[17]=rec_value&0x00ff;
			 
			 rec_value=SYS_EXT_FLAG_str.Current_Mouth;			
			 read_buf[18]=(rec_value>>24)&0x00ff;
			 read_buf[19]=(rec_value>>16)&0x00ff;
			 read_buf[20]=(rec_value>>8)&0x00ff;
			 read_buf[21]=rec_value&0x00ff;			
       /////////////////////////////////////////////////
       rec_value=SYS_EXT_FLAG_str1.ALL_WORK_TIME;
			 read_buf[22]=(rec_value>>24)&0x00ff;
			 read_buf[23]=(rec_value>>16)&0x00ff;
			 read_buf[24]=(rec_value>>8)&0x00ff;
			 read_buf[25]=rec_value&0x00ff;
			 
       rec_value=SYS_EXT_FLAG_str1.CONTINUE_WORK_TIME;
			 read_buf[26]=(rec_value>>24)&0x00ff;
			 read_buf[27]=(rec_value>>16)&0x00ff;
			 read_buf[28]=(rec_value>>8)&0x00ff;
			 read_buf[29]=rec_value&0x00ff;
			 
       rec_value=SYS_EXT_FLAG_str1.Month_Send_Flow;
			 read_buf[30]=(rec_value>>24)&0x00ff;
			 read_buf[31]=(rec_value>>16)&0x00ff;
			 read_buf[32]=(rec_value>>8)&0x00ff;
			 read_buf[33]=rec_value&0x00ff;			 
			 
       rec_value=SYS_EXT_FLAG_str1.Month_Rev_Flow;
			 read_buf[34]=(rec_value>>24)&0x00ff;
			 read_buf[35]=(rec_value>>16)&0x00ff;
			 read_buf[36]=(rec_value>>8)&0x00ff;
			 read_buf[37]=rec_value&0x00ff;			


       rec_value=SYS_EXT_FLAG_str1.Current_Mouth;			
			 read_buf[38]=(rec_value>>24)&0x00ff;
			 read_buf[39]=(rec_value>>16)&0x00ff;
			 read_buf[40]=(rec_value>>8)&0x00ff;
			 read_buf[41]=rec_value&0x00ff;	
			 W25QXX_Write(read_buf,system_info_addr1,50);		 
		
		}
	  else//从read buf读并打印
		{
		
		   printf("system  have  record time & flow \r\n");			 
			 SYS_EXT_FLAG_str.ALL_WORK_TIME= (read_buf[2]<<24)+(read_buf[3]<<16)+(read_buf[4]<<8)+read_buf[5];		
			 SYS_EXT_FLAG_str.CONTINUE_WORK_TIME=0;			
			 SYS_EXT_FLAG_str.Month_Rev_Flow=(read_buf[10]<<24)+(read_buf[11]<<16)+(read_buf[12]<<8)+read_buf[13];		
			 SYS_EXT_FLAG_str.Month_Send_Flow=(read_buf[14]<<24)+(read_buf[15]<<16)+(read_buf[16]<<8)+read_buf[17];						
			 SYS_EXT_FLAG_str.Current_Mouth=(read_buf[18]<<24)+(read_buf[19]<<16)+(read_buf[20]<<8)+read_buf[21]; //获取 当前月
			
			 SYS_EXT_FLAG_str1.ALL_WORK_TIME= (read_buf[22]<<24)+(read_buf[23]<<16)+(read_buf[24]<<8)+read_buf[25];		
			 SYS_EXT_FLAG_str1.CONTINUE_WORK_TIME=0;			
			 SYS_EXT_FLAG_str1.Month_Rev_Flow=(read_buf[30]<<24)+(read_buf[31]<<16)+(read_buf[32]<<8)+read_buf[33];		
			 SYS_EXT_FLAG_str1.Month_Send_Flow=(read_buf[34]<<24)+(read_buf[35]<<16)+(read_buf[36]<<8)+read_buf[37];						
			 SYS_EXT_FLAG_str1.Current_Mouth=(read_buf[38]<<24)+(read_buf[39]<<16)+(read_buf[40]<<8)+read_buf[41]; //获取 当前月
			
			 if(SYS_EXT_FLAG_str.Current_Mouth!=RTC_DateStruct.RTC_Month)
			 {
			    printf(" Mouth error,clear Month_Rev_Flow & Month_Send_Flow\r\n");
				  SYS_EXT_FLAG_str.Month_Rev_Flow=0;
				  SYS_EXT_FLAG_str.Month_Send_Flow=0;
			 
			 }
		   printf(" system default value :\r\n");
			 printf("SIM1 ---ALL_WORK_TIME;%d\r\n",SYS_EXT_FLAG_str.ALL_WORK_TIME);
			 printf("SIM1 ---CONTINUE_WORK_TIME:%d\r\n",SYS_EXT_FLAG_str.CONTINUE_WORK_TIME);
			 printf("SIM1 ---Month_Send_Flow:%d\r\n",SYS_EXT_FLAG_str.Month_Send_Flow);
			 printf("SIM1 ---Month_Rev_Flow:%d\r\n",SYS_EXT_FLAG_str.Month_Rev_Flow);		   
			 printf("SIM1 ---Current_Mouth;%d\r\n",SYS_EXT_FLAG_str.Current_Mouth);	
			 
			 printf("SIM2 ---ALL_WORK_TIME;%d\r\n",SYS_EXT_FLAG_str1.ALL_WORK_TIME);
			 printf("SIM2 ---CONTINUE_WORK_TIME:%d\r\n",SYS_EXT_FLAG_str1.CONTINUE_WORK_TIME);
			 printf("SIM2 ---Month_Send_Flow:%d\r\n",SYS_EXT_FLAG_str1.Month_Send_Flow);
			 printf("SIM2 ---Month_Rev_Flow:%d\r\n",SYS_EXT_FLAG_str1.Month_Rev_Flow);		   
			 printf("SIM2 ---Current_Mouth;%d\r\n",SYS_EXT_FLAG_str1.Current_Mouth);
		
		}


}


 //unsigned int lora_num=0;
// 
void Print_sys(void)
{

   unsigned char i=0;
   if((SYSTEM_INFO_str.push_time[0]!=0x00)&(SYSTEM_INFO_str.push_time[0]!=0xff))  //Lora 推送时间
   	{
   	    printf("push_time: ");
        for(i=0;i<SYSTEM_INFO_str.push_time[0];i++)
        {
           printf("%c",SYSTEM_INFO_str.push_time[1+i]);//打印推送时间  默认1200  
					
					
		    }
				Get_num_sys_time(SYSTEM_INFO_str.push_time);
        
    }
    else{
		
					printf("check push_time ~~~~~~~\r\n ");
			    SYS_TIME_FLAG_str.time_1200sec_set=1200;
			    printf("set time 1200 sec \r\n");
		     }

    if((SYSTEM_INFO_str.device_id[0]!=0x00)&(SYSTEM_INFO_str.device_id[0]!=0xff))//0x00" 代表的是空字符,0xff无效字符
   	{
   	    printf("device_id: ");
        for(i=0;i<SYSTEM_INFO_str.device_id[0];i++)
        {
           printf("%c",SYSTEM_INFO_str.device_id[1+i]);//打印device id
		}
        printf("\r\n");
    }
    else{printf("check device_id ~~~~~~~\r\n ");}

    if((SYSTEM_INFO_str.server_1_addr[0]!=0x00)&(SYSTEM_INFO_str.server_1_addr[0]!=0xff))
   	{
   	    printf("server_1_addr: ");
        for(i=0;i<SYSTEM_INFO_str.server_1_addr[0];i++)
        {
           printf("%c",SYSTEM_INFO_str.server_1_addr[1+i]);
		}
        printf("\r\n");
    }
    else{printf("check server_1_addr ~~~~~~~\r\n ");}

	if((SYSTEM_INFO_str.server_2_addr[0]!=0x00)&(SYSTEM_INFO_str.server_2_addr[0]!=0xff))
   	{
   	    printf("server_2_addr: ");
        for(i=0;i<SYSTEM_INFO_str.server_2_addr[0];i++)
        {
           printf("%c",SYSTEM_INFO_str.server_2_addr[1+i]);
		}
        printf("\r\n");
    }
    else{printf("check server_2_addr ~~~~~~~\r\n ");}

	if((SYSTEM_INFO_str.wifi_ssid_addr[0]!=0x00)&(SYSTEM_INFO_str.wifi_ssid_addr[0]!=0xff))
   	{
   	    printf("wifi_ssid_addr: ");
        for(i=0;i<SYSTEM_INFO_str.wifi_ssid_addr[0];i++)
        {
           printf("%c",SYSTEM_INFO_str.wifi_ssid_addr[1+i]);
		}
        printf("\r\n");
    }
    else{printf("check wifi_ssid_addr ~~~~~~~\r\n ");}
		
		
   //  AT+PRO1:1! --南网
	if((SYSTEM_INFO_str.server_1_plam[0]!=0x00)&(SYSTEM_INFO_str.server_1_plam[0]!=0xff))
   	{
   	    printf("server_1_plam: ");
        for(i=0;i<SYSTEM_INFO_str.server_1_plam[0];i++)
        {
           printf("%c",SYSTEM_INFO_str.server_1_plam[1+i]);				
				   			
		    }
        printf("\r\n");
				SYS_PLAM_4G1=SYSTEM_INFO_str.server_1_plam[1];		
				if(SYS_PLAM_4G1=='1')
				{
				   printf("SYS_PLAM_4G1 choose nanwang\r\n");				
				}
				else
				{
				    printf("SYS_PLAM_4G1 choose guowang\r\n");		
				}
    }
    else{printf("check server_1_plam ~~~~~~~\r\n ");}

	if((SYSTEM_INFO_str.server_2_plam[0]!=0x00)&(SYSTEM_INFO_str.server_2_plam[0]!=0xff))
   	{
   	    printf("server_2_plam: ");
        for(i=0;i<SYSTEM_INFO_str.server_2_plam[0];i++)
        {
           printf("%c",SYSTEM_INFO_str.server_2_plam[1+i]);
		    }
        printf("\r\n");
				SYS_PLAM_4G2=SYSTEM_INFO_str.server_2_plam[1];
				if(SYS_PLAM_4G2=='1')
				{
				   printf("SYS_PLAM_4G2 choose nanwang\r\n");				
				}
				else
				{
				    printf("SYS_PLAM_4G2 choose guowang\r\n");		
				}
    }
    else{printf("check server_2_plam ~~~~~~~\r\n ");}

		
		
	if((SYSTEM_INFO_str.lora_1_addr[0]!=0x00)&(SYSTEM_INFO_str.lora_1_addr[0]!=0xff))
   	{
   	    Get_num_lora(SYSTEM_INFO_str.lora_1_addr,0);
			   
		}
      

	if((SYSTEM_INFO_str.lora_2_addr[0]!=0x00)&(SYSTEM_INFO_str.lora_2_addr[0]!=0xff))
   	{
   	  Get_num_lora(SYSTEM_INFO_str.lora_2_addr,1);
		}

   

	if((SYSTEM_INFO_str.lora_3_addr[0]!=0x00)&(SYSTEM_INFO_str.lora_3_addr[0]!=0xff))
   	{
   	    Get_num_lora(SYSTEM_INFO_str.lora_3_addr,2);
		}
      

	if((SYSTEM_INFO_str.lora_4_addr[0]!=0x00)&(SYSTEM_INFO_str.lora_4_addr[0]!=0xff))
   	{
   	   Get_num_lora(SYSTEM_INFO_str.lora_4_addr,3);
		}

	if((SYSTEM_INFO_str.lora_5_addr[0]!=0x00)&(SYSTEM_INFO_str.lora_5_addr[0]!=0xff))
   	{
   	   Get_num_lora(SYSTEM_INFO_str.lora_5_addr,4);
		}

	if((SYSTEM_INFO_str.lora_6_addr[0]!=0x00)&(SYSTEM_INFO_str.lora_6_addr[0]!=0xff))
   	{
   	    Get_num_lora(SYSTEM_INFO_str.lora_6_addr,5);
		}

	if((SYSTEM_INFO_str.lora_7_addr[0]!=0x00)&(SYSTEM_INFO_str.lora_7_addr[0]!=0xff))
   	{
   	   Get_num_lora(SYSTEM_INFO_str.lora_7_addr,6);
		}

	if((SYSTEM_INFO_str.lora_8_addr[0]!=0x00)&(SYSTEM_INFO_str.lora_8_addr[0]!=0xff))
   	{
   	    Get_num_lora(SYSTEM_INFO_str.lora_8_addr,7);
		}

	if((SYSTEM_INFO_str.lora_9_addr[0]!=0x00)&(SYSTEM_INFO_str.lora_9_addr[0]!=0xff))
   	{
   	   Get_num_lora(SYSTEM_INFO_str.lora_9_addr,8);
		}

	if((SYSTEM_INFO_str.lora_10_addr[0]!=0x00)&(SYSTEM_INFO_str.lora_10_addr[0]!=0xff))
   	{
   	   Get_num_lora(SYSTEM_INFO_str.lora_10_addr,9);
		}

	if((SYSTEM_INFO_str.lora_11_addr[0]!=0x00)&(SYSTEM_INFO_str.lora_11_addr[0]!=0xff))
   	{
   	   Get_num_lora(SYSTEM_INFO_str.lora_11_addr,10);
		
		}

	if((SYSTEM_INFO_str.lora_12_addr[0]!=0x00)&(SYSTEM_INFO_str.lora_12_addr[0]!=0xff))
   	{
   	   Get_num_lora(SYSTEM_INFO_str.lora_12_addr,11);
		}

	if((SYSTEM_INFO_str.lora_13_addr[0]!=0x00)&(SYSTEM_INFO_str.lora_13_addr[0]!=0xff))
   	{
   	    Get_num_lora(SYSTEM_INFO_str.lora_13_addr,12);
		}

	if((SYSTEM_INFO_str.lora_14_addr[0]!=0x00)&(SYSTEM_INFO_str.lora_14_addr[0]!=0xff))
   	{
   	   Get_num_lora(SYSTEM_INFO_str.lora_14_addr,13);
		}

	if((SYSTEM_INFO_str.lora_15_addr[0]!=0x00)&(SYSTEM_INFO_str.lora_15_addr[0]!=0xff))
   	{
   	   Get_num_lora(SYSTEM_INFO_str.lora_15_addr,14);
		}

	if((SYSTEM_INFO_str.lora_16_addr[0]!=0x00)&(SYSTEM_INFO_str.lora_16_addr[0]!=0xff))
   	{
   	    Get_num_lora(SYSTEM_INFO_str.lora_16_addr,15);
		}

	if((SYSTEM_INFO_str.lora_17_addr[0]!=0x00)&(SYSTEM_INFO_str.lora_17_addr[0]!=0xff))
   	{
   	   Get_num_lora(SYSTEM_INFO_str.lora_17_addr,16);
		}	

	if((SYSTEM_INFO_str.lora_18_addr[0]!=0x00)&(SYSTEM_INFO_str.lora_18_addr[0]!=0xff))
   	{
			Get_num_lora(SYSTEM_INFO_str.lora_18_addr,17);
			
   	}	

	if((SYSTEM_INFO_str.lora_19_addr[0]!=0x00)&(SYSTEM_INFO_str.lora_19_addr[0]!=0xff))
   	{
   	   Get_num_lora(SYSTEM_INFO_str.lora_19_addr,18);
		}	

	if((SYSTEM_INFO_str.lora_20_addr[0]!=0x00)&(SYSTEM_INFO_str.lora_20_addr[0]!=0xff))
   	{
   	    Get_num_lora(SYSTEM_INFO_str.lora_20_addr,19);
		
		}
	
	if((SYSTEM_INFO_str.lora_21_addr[0]!=0x00)&(SYSTEM_INFO_str.lora_21_addr[0]!=0xff))
   	{
   	   Get_num_lora(SYSTEM_INFO_str.lora_21_addr,20);
		
		}

	if((SYSTEM_INFO_str.lora_22_addr[0]!=0x00)&(SYSTEM_INFO_str.lora_22_addr[0]!=0xff))
   	{
   	    Get_num_lora(SYSTEM_INFO_str.lora_22_addr,21);
		}	

	if((SYSTEM_INFO_str.lora_23_addr[0]!=0x00)&(SYSTEM_INFO_str.lora_23_addr[0]!=0xff))
   	{
   	   Get_num_lora(SYSTEM_INFO_str.lora_23_addr,22);
		
		}	

	if((SYSTEM_INFO_str.lora_24_addr[0]!=0x00)&(SYSTEM_INFO_str.lora_24_addr[0]!=0xff))
   	{
   	   Get_num_lora(SYSTEM_INFO_str.lora_24_addr,23);
		
		}	
    

}



